// 小程序分享
import http from '@/api/http.js'

export default async function(shareInfo = {}) {
	let shareRes, pages, page, pageRoute, options, shareData,fxcode = '', data, sharePath;
	let {share_type, litpic, info} = shareInfo
	let params = {
		method: 'api/v2/share/share_mp_info',
	}
	
	if(!info){
		info = {}
	}
	
	if(share_type){
		share_type = 1
	}else{
		share_type = 0
	}
	
	let {title, price, desc, sellpoint} = info
	title = title ? title : ''
	price = price ? price : ''
	sellpoint = sellpoint ? sellpoint : ''
	params = {...params, ...{title, price, sellpoint, share_type}}
	
	shareRes = await http(params)
	if (shareRes.status) {
		shareData = shareRes.data
		// 获取当前页面路径
		pages = getCurrentPages()
		page = pages[pages.length - 1]
		pageRoute = page.route
		options   = page.options
		
		// 分销商
		/**
			注:若是用户通过扫描海报二维码进入小程序页面,再点击右上角'...'分享给好友的链接,需要删除页面参数中的'scene',
			并且'scene'中的参数需解码出来加入当前页面参数中
		**/
		if(options.scene){
			let attr = decodeURIComponent(options.scene).split('&');
			delete options.scene;
			for (var i = 0; i < attr.length; i++) {
				let si = attr[i].split('=');
				options[si[0]] = unescape(si[1]);
			}
		}
		
		options.fxpcode = shareData.fxcode ? shareData.fxcode : '';
		// 设置分享地址
		sharePath = stUrlComponent(pageRoute, options);
		
		data = {
			title: title ? title : shareData.title, // 自定义分享标题
			imageUrl: litpic ?  litpic : shareData.litpic ,// 针对产品详情类型的自定义封面
			// #ifndef MP-QQ
			path : sharePath, // 页面 path ，必须是以 / 开头的完整路径。
			// #endif
			// #ifdef MP-ALIPAY || MP-TOUTIAO
			desc: desc ? desc : shareData.desc, // 自定义分享描述
			// #endif
			// #ifdef MP-BAIDU || MP-ALIPAY
			content:'', //百度小程序表现为：分享内容；支付宝小程序表现为：吱口令文案
			// #endif
		};
		return data;
	}
	return false;
}


const stUrlComponent = function(url, params) {
	let prefix = '?'; // 拼接参数
	for (let i in params) {
		url += prefix + i + '=' + encodeURIComponent(params[i]);
		prefix = '&';
	}
	// 页面 path ，必须是以 / 开头的完整路径。
	return '/' + url;
}
